package cn.iocoder.yudao.module.qrcode.service.group;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.qrcode.controller.admin.group.vo.*;
import cn.iocoder.yudao.module.qrcode.dal.dataobject.group.GroupDO;

/**
 * 二维码分组 Service 接口
 *
 * @author 芋道源码
 */
public interface GroupService {

    /**
     * 创建二维码分组
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createGroup(@Valid GroupSaveReqVO createReqVO);

    /**
     * 更新二维码分组
     *
     * @param updateReqVO 更新信息
     */
    void updateGroup(@Valid GroupSaveReqVO updateReqVO);

    /**
     * 删除二维码分组
     *
     * @param id 编号
     */
    void deleteGroup(Long id);

    /**
     * 获得二维码分组
     *
     * @param id 编号
     * @return 二维码分组
     */
    GroupDO getGroup(Long id);

    /**
     * 获得二维码分组列表
     *
     * @param listReqVO 查询条件
     * @return 二维码分组列表
     */
    List<GroupDO> getGroupList(GroupListReqVO listReqVO);

    List<GroupRespVO> getGroupTree(GroupListReqVO listReqVO);

}